package cn.bestsign.delta.contact_sam.entity;

import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 合同表
 * </p>
 *
 * @author jobob
 * @since 2019-06-14
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class Contract implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 合同编号
     */
    private Long contractId;

    /**
     * 客户定义的合同编号。
     */
    private String customContractId;

    /**
     * 合同标题
     */
    private String contractTitle;

    /**
     * 创建合同的模板编号
     */
    private Long createTemplateId;

    /**
     * 模板批量创建编号
     */
    private Long batchOperationId;

    /**
     * 合同描述
     */
    private String contractDescription;

    /**
     * contract_sign_type —> is_sign_ordered 签约是否有序 0：无序的 1：有序的
     */
    private Integer isSignOrdered;

    /**
     * 合同状态 2：已创建、草稿；3：已发送，正在签署中；4：拒绝签署；5：已完成； 7：取消（撤销）；9：已过期； 10:发送审批中； 11:发送审批未通过
     */
    private Integer contractStatus;

    /**
     * 发送用户的编号
     */
    private Long sendUserId;

    /**
     * 发送用户的姓名
     */
    private String sendUserName;

    /**
     * 发送用户的企业编号
     */
    private Long sendUserEnterpriseId;

    /**
     * 发送用户的企业名称
     */
    private String sendUserEnterpriseName;

    /**
     * 发送平台：0：未指定；1：WEB；2：APP；3：API；4：WPS；5：INVITATION 6：WPS Online；7：ENT_CREATE; 8: SANDBOX; 9: WAP; 10: ANDROID; 11: IOS
     */
    private Integer sendPlatform;

    /**
     * 创建用户编号
     */
    private Long createUserId;

    /**
     * 【新】 创建合同的平台
     */
    private Long createDeveloperId;

    /**
     * 【冗余数据】创建平台的短名称
     */
    private String createDeveloperName;

    /**
     * 创建合同的应用编号
     */
    private String createClientId;

    /**
     * 合同发送时间
     */
    private LocalDateTime sendTime;

    /**
     * 合同完成时间
     */
    private LocalDateTime finishTime;

    /**
     * 合同发送之后，签署过期的天数
     */
    private Integer signExpiredDays;

    /**
     * 签署截止日期 send_time + sign_expired_days
     */
    private LocalDateTime signDeadline;

    /**
     * 合同有效期开始时间
     */
    private LocalDateTime contractLifeBegin;

    /**
     * 合同有效期结束时间
     */
    private LocalDateTime contractLifeEnd;

    /**
     * 1：公有云 2：混合云
     */
    private Integer systemType;

    /**
     * 公证状态
     */
    private Integer notaryStatus;

    /**
     * 扩展属性，扣费类型等
     */
    private String extendedAttribute;

    /**
     * 合同创建时间
     */
    private LocalDateTime createTime;

    /**
     * 合同修改时间
     */
    private LocalDateTime modifyTime;

    /**
     * 删除标志 0：未删除; 1：已删除
     */
    private Integer deleteFlag;

    /**
     * 数据创建时间
     */
    private LocalDateTime dataCreateTime;

    /**
     * 数据修改时间
     */
    private LocalDateTime dataUpdateTime;

    private String dataVersion;


}
